package anjos.bean;

import anjos.modelo.Crianca;
import anjos.rn.CriancaRN;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.model.SelectItem;

@ManagedBean
@RequestScoped
public class CriancaBean {

    private CriancaRN criancaRN = new CriancaRN();
    private Crianca crianca = new Crianca();
    private List<Crianca> criancas;

    public CriancaBean() {
    }

    public Crianca getCrianca() {
        return crianca;
    }

    public void setCrianca(Crianca crianca) {
        this.crianca = crianca;
    }

    public CriancaRN getCriancaRN() {
        return criancaRN;
    }

    public void setCriancaRN(CriancaRN criancaRN) {
        this.criancaRN = criancaRN;
    }

    public List<Crianca> getCriancas() {
        criancas = criancaRN.obterTodos();
        return criancas;
    }

    public SelectItem[] getResponsaveis() {
        return criancaRN.getResponsaveis();
    }

    public SelectItem[] getEventos() {
        return criancaRN.getEventos();
    }

    public void setCriancas(List<Crianca> criancas) {
        this.criancas = criancas;
    }

    public String novo() {
        criancaRN.novo();
        return "/cadastro/crianca/formularioCrianca.xhtml";
    }

    public String listarCriancas() {

        return "/cadastro/crianca/listaCriancas";
    }

    public String renderedCriancaMenu() {
        if (new ResponsavelBean().getResponsaveis().isEmpty()) {
            return "/cadastro/responsavel/formularioResponsavel.xhtml";
        } else if (new EventoBean().getEventos().isEmpty()) {
            return "/cadastro/evento/formularioEvento.xhtml";
        } else {
            return "/cadastro/crianca/listaCriancas.xhtml";
        }
    }

    public String salvar() {
        if (criancaRN.salvar(crianca)) {
            BeanUtil.criarMensagemDeInformacao("Operação Realizada com Sucesso", "Criança Salva na Lista");
        } else {
            BeanUtil.criarMensagemDeErro("Erro ao salvar", "Criança não pode ser incluida na Lista");
        }
        return listarCriancas();

    }

    public String excluir() {
        if (criancaRN.remover(crianca)) {
            BeanUtil.criarMensagemDeInformacao("Criança Removida da Lista", "Criança: " + crianca.getNome());
        } else {
            BeanUtil.criarMensagemDeErro("Erro ao remover Criança", "Criança não pode ser removida");
        }
        return listarCriancas();
    }
}
